<?php

//on cherche les séquences répétitives dans un simple tableau de char


$r1 = "ABCDABCDEF";

function a($r,$l) {
    //on reçoit une séquence identifiée comme s'étant répété
    //on va la scruter pour voir quelles sous-séquences la composent
    //On peut y trouver des séquences qui se répetent 2 fois (si l>2)
    //On peut y trouver des séquences qui se répetent 3 fois (si l>3)
    //On peut y trouver des séquences qui se répetent 4 fois (si l>4) , par contre elles englobent celles qui se sonr répétées 2 fois
    //Si on trouve une séquence qui se répete p1^n1.p2^n2.... elles engloberont celles dont elles sont un multiple (c.a.d en faisant baisser un ,)
    //il faut donc partir de la valeur maximale et construire un crible
    //si la taille est l on va trouver au max l séquences répétitives
    for($taille2 = $l - 1; $l -- ; $l >= 1) {
       b($r,$l);
    }
}

function b($r,$l) {
    //est ce qu'une séquence de longueur l se répete dans r ?
    
}



function zab($num) {
	$sqrt = sqrt($num);
	for ($i = 2; $i <= $sqrt; $i++) {
		if ($num % $i == 0) {
			return array_merge(primefactor($num/$i), array($i));
		}
	}
	return array($num);
}


//-----------------
//http://www.thatsgeeky.com/2011/03/prime-factoring-with-php/

function pfactor($n){
	// max_n = 2^31-1 = 2147483647
	$d=2;
	$factors = array();
	$dmax = floor(sqrt($n));
	$sieve = array();
	$sieve = array_fill(1, $dmax,1);
	do{
		$r = false;
		while ($n%$d==0){
			$factors[$d]++;
			$n/=$d;
			$r = true;
		}
		if ($r){
			$dmax = floor(sqrt($n));
		}
		if ($n>1){
			for ($i=$d;$i<=$dmax;$i+=$d){
				$sieve[$i]=0;
			}
			do{
				$d++;
			}while ($sieve[$d]!=1 && $d<$dmax);
			if ($d>$dmax){
				$factors[$n]++;
			}
		}
	}while($n>1 && $d<=$dmax);
	return $factors;
}

//http://www.fusionswift.com/2010/06/php-prime-factors/

function primefactor($num) {
	$sqrt = sqrt($num);
	for ($i = 2; $i <= $sqrt; $i++) {
		if ($num % $i == 0) {
			return array_merge(primefactor($num/$i), array($i));
		}
	}
	return array($num);
}

$prime = primefactor(12590161); // this is a prime number
print_r($prime);

$composite = primefactor(65535); // this is a composite number
print_r($composite);